//
//  BaseTableViewController.swift
//  WBSwift
//
//  Created by 钱学明 on 2017/3/7.
//  Copyright © 2017年 STT. All rights reserved.
/*
 在swift中进行设置代理的
 delegate 属性必须使用weak 
 delegate中的方法默认是必须实现的
 

 */

import UIKit

class BaseTableViewController: UITableViewController {
    //  记录用户登录的状态 默认是未登录的
    var isLogin = false
    
    // 定义一个全局的变量 可选类型
    var visitor : VisitorView?
    
    override func loadView() {

         /*
          判断用户是否登录
         */
        isLogin ? super.loadView():setUpLoadView()
    }
    
    private  func setUpLoadView()  {
        
       let  otherView = VisitorView.visitorViewLoad()
        
       visitor = otherView
        
//        visitor?.delegate = self
        // 重写View
       view = otherView
        
        butActionWithRegisterAndLogin()
        
    }
    
    override func viewDidLoad() {
        super.viewDidLoad()

  
    }
    
    private func butActionWithRegisterAndLogin() {
    
        visitor?.registBut.addTarget(self, action: #selector(registerAction(sender:)), for: .touchUpInside)
        // swift 中所有的属性 外部都是可以进行访问的
        visitor?.loginBut.addTarget(self, action: #selector(loginAction(sender:)), for: .touchUpInside)
        
        // 添加导航条的按钮
        navigationItem.leftBarButtonItem = UIBarButtonItem.init(title: "注册", style: UIBarButtonItemStyle.plain, target: self, action: #selector(registerAction(sender:)))
        
        navigationItem.rightBarButtonItem = UIBarButtonItem.init(title: "登录", style: UIBarButtonItemStyle.plain, target: self, action: #selector(loginAction(sender:)))
    }
    
    
    @objc func registerAction(sender:UIButton){
    
        ALog(messge: "register")
        
    }
    
    @objc func loginAction(sender:UIButton){
    
        //  创建登录界面
        let sb = UIStoryboard.init(name: "Auoth", bundle: nil)
        let vi = sb.instantiateInitialViewController()
        
        // swfit 中对于可选类型需要进行拆包
        present(vi!, animated: true, completion: nil)
        ALog(messge: "login")
    }
}

/*
 swift 中为了提高代码的阅读 将代理的实现方法放在了分类中进行
 */
//extension BaseTableViewController :VisitorViewDelegate{
//    
//    func visitorViewDidclickButtonWithLogin(visitor:VisitorView){
//    
//        ALog(messge: "-----")
//    }
//    func visitorViewDidclickButtonWithRegister(visitor:VisitorView){
//    
//    }
//    
//}

